home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / gui / ClassFree_src.lha / ClassFree_src / CFlistclass / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-11-08  |  3.5 KB  |  144 lines

  1. /* Small test proggy for my listviewclass */
  2.  
  3. #include <clib/alib_protos.h>
  4. #include <clib/exec_protos.h>
  5. #include <clib/graphics_protos.h>
  6. #include <clib/intuition_protos.h>
  7. #include <clib/dos_protos.h>
  8. #include <intuition/intuition.h>
  9. #include <intuition/gadgetclass.h>
  10. #include <intuition/imageclass.h>
  11. #include <stdio.h>
  12. #include "CFlist.h"
  13. #include "CFbutton.h"
  14.  
  15. #define CFB_G    0
  16. #define TSTUP_G  1
  17. #define TSTDN_G  2
  18. #define QUIT_G   3
  19. #define NUM_GADS 4
  20.  
  21.  
  22. struct Library *CFBbase;
  23. struct Library *CFLbase;
  24.  
  25. void main(void)
  26. {
  27.   struct Window *win;
  28.   struct Gadget *glist, *tgad, *gads[NUM_GADS];
  29.   struct IntuiMessage *imsg;
  30.   struct List list;
  31.   struct Node node[5];
  32.   char *label[] = {"Numme","Snabel","Tester","Rygge","Arrrg"};
  33.   BOOL breakflag = FALSE;
  34.   LONG pos,iclass;
  35.  
  36.   CFBbase = OpenLibrary("Gadgets/CFbutton.gadget",NULL);
  37.   CFLbase = OpenLibrary("CFlist.gadget",NULL);
  38.  
  39. //  if(lvbase) printf("Class opened\n");
  40.  
  41.   win = OpenWindowTags(NULL,
  42.           WA_Left, 200,
  43.           WA_Width,400,WA_Height,200,
  44.           WA_IDCMP, IDCMP_GADGETUP,
  45.           TAG_DONE);
  46.   SetAPen(win->RPort,1);
  47.  
  48.   NewList(&list);
  49.   pos = 0;
  50.   while(pos<5)
  51.   {
  52.     node[pos].ln_Name = label[pos];
  53.     AddTail(&list,&node[pos]);
  54.     pos++;
  55.   }
  56.  
  57.   gads[CFB_G] = (struct Gadget *)NewObject(NULL,CFlistClassName,
  58.           GA_Left, 30, GA_Top, 30,
  59.           GA_Width, 70, GA_Height, 60,
  60.           CFL_Labels, &list,
  61.           CFL_Top, 1,
  62.           CFL_Selected, 2,
  63.           GA_ID, CFB_G,
  64.           TAG_DONE);
  65.   if(!gads[CFB_G])
  66.   {
  67.     CloseWindow(win);
  68.     CloseLibrary(CFLbase);
  69.     CloseLibrary(CFBbase);
  70.     exit(0);
  71.   }
  72.   glist = gads[CFB_G];
  73.   gads[TSTUP_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  74.           GA_Previous, gads[TSTUP_G-1],
  75.           GA_Left, 200, GA_Top, 30,
  76.           GA_Width, 50, GA_Height, 20,
  77.           GA_Highlight, FALSE,
  78.           GA_Text, "UP",
  79.           GA_RelVerify, TRUE,
  80.           GA_ID, TSTUP_G,
  81.           TAG_DONE);
  82.  
  83.   gads[TSTDN_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  84.           GA_Previous, gads[TSTDN_G-1],
  85.           GA_Left, 200, GA_Top, 60,
  86.           GA_Width, 50, GA_Height, 20,
  87.           GA_Text, "DOWN",
  88.           CFBU_Layout, LAYOUT_TXTLEFT,
  89.           GA_RelVerify, TRUE,
  90.           GA_ID, TSTDN_G,
  91.           TAG_DONE);
  92.   gads[QUIT_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  93.           GA_Previous, gads[QUIT_G-1],
  94.           GA_Left, 200, GA_Top, 90,
  95.           GA_Width, 50, GA_Height, 20,
  96.           GA_Text, "Quit",
  97.           GA_RelVerify, TRUE,
  98.           GA_ID, QUIT_G,
  99.           TAG_DONE);
  100.  
  101. //  if(glist) printf("NewObject succeded\n");
  102. //  else printf("Failed to create lvc_object..\n");
  103.  
  104.  
  105.   AddGList(win,glist,-1,-1,NULL);
  106.   RefreshGadgets(glist,win,NULL);
  107.  
  108.   while(!breakflag)
  109.   {
  110.     WaitPort(win->UserPort);
  111.     while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
  112.     {
  113.       iclass = imsg->Class;
  114.       tgad = (struct Gadget *)imsg->IAddress;
  115.       pos = imsg->Code;
  116.       ReplyMsg((struct Message *)imsg);
  117.       if(iclass == IDCMP_GADGETUP)
  118.       {
  119.         switch(tgad->GadgetID)
  120.         {
  121.           case QUIT_G: breakflag = TRUE; break;
  122.           case CFB_G:
  123.             printf("Code returned: %ld\n",pos);
  124.             break;
  125. /*          case TSTUP_G:
  126.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  127.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos-1,TAG_DONE);
  128.             break;
  129.           case TSTDN_G:
  130.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  131.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos+1,TAG_DONE);
  132.             break;*/
  133.         }
  134.       }
  135.     }
  136.   }
  137.  
  138.   RemoveGList(win,glist,-1);
  139.   pos = 0;
  140.   while(pos<NUM_GADS) DisposeObject(gads[pos++]);
  141.   CloseWindow(win);
  142.   CloseLibrary(CFBbase);
  143.   CloseLibrary(CFLbase);
  144. }